package emp.entidades;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import com.axcessfinancial.domain.*;
import com.sun.org.apache.xml.internal.security.c14n.helper.C14nHelper;

@Entity
@Table(name="venta")
public class EntVenta extends com.axcessfinancial.domain.BaseEntity implements Serializable{
	
	private EntTipoDocumento entTipoDocumento;
	private String serie;
	private String numDocumento;
	private Date fecha;
	private EntCliente entCliente;
	private EntAlmacen entAlmacen;
	private long idPedido;
	private int factura;
	private double valorVenta;
	private double igv;
	private double impuesto;
	private double totalVenta;
	private EntMoneda entMoneda;
	private EntCajaVenta entCajaVenta;
	private Date fechaPago;
	private double saldo;
	private int estado;
	
	
	public EntVenta() {
		// TODO Auto-generated constructor stub
	}
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idTipoDocumento")
	public EntTipoDocumento getEntTipoDocumento() {
		return entTipoDocumento;
	}
	public void setEntTipoDocumento(EntTipoDocumento entTipoDocumento) {
		this.entTipoDocumento = entTipoDocumento;
	}

	@Column(name="serie", length=4)
	public String getSerie() {
		return serie;
	}
	public void setSerie(String serie) {
		this.serie = serie;
	}

	@Column(name="numDocumento", length=10)
	public String getNumDocumento() {
		return numDocumento;
	}
	public void setNumDocumento(String numDocumento) {
		this.numDocumento = numDocumento;
	}

	@Column(name="fecha")
	public Date getFecha() {
		return fecha;
	}
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idCliente")
	public EntCliente getEntCliente() {
		return entCliente;
	}
	public void setEntCliente(EntCliente entCliente) {
		this.entCliente = entCliente;
	}

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idAlmacen")
	public EntAlmacen getEntAlmacen() {
		return entAlmacen;
	}
	public void setEntAlmacen(EntAlmacen entAlmacen) {
		this.entAlmacen = entAlmacen;
	}
//
//	@ManyToOne(fetch=FetchType.LAZY)
//	@JoinColumn(name="idFormaPago")
//	public EntFormaPago getEntFormaPago() {
//		return entFormaPago;
//	}
//	public void setEntFormaPago(EntFormaPago entFormaPago) {
//		this.entFormaPago = entFormaPago;
//	}

	@Column(name="idPedido")
	public long getIdPedido() {
		return idPedido;
	}
	public void setIdPedido(long idPedido) {
		this.idPedido = idPedido;
	}
	
	@Column(name="factura")
	public int getFactura() {
		return factura;
	}
	public void setFactura(int factura) {
		this.factura = factura;
	}

	@Column(name="valorVenta", length=12, precision=2)
	public double getValorVenta() {
		return valorVenta;
	}
	public void setValorVenta(double valorVenta) {
		this.valorVenta = valorVenta;
	}

	@Column(name="igv", length=12, precision=2)
	public double getIgv() {
		return igv;
	}
	public void setIgv(double igv) {
		this.igv = igv;
	}

	@Column(name="impuesto", length=12, precision=2)
	public double getImpuesto() {
		return impuesto;
	}
	public void setImpuesto(double impuesto) {
		this.impuesto = impuesto;
	}

	@Column(name="totalVenta", length=12, precision=2)
	public double getTotalVenta() {
		return totalVenta;
	}
	public void setTotalVenta(double totalVenta) {
		this.totalVenta = totalVenta;
	}

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idMoneda")
	public EntMoneda getEntMoneda() {
		return entMoneda;
	}
	public void setEntMoneda(EntMoneda entMoneda) {
		this.entMoneda = entMoneda;
	}

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idCajaVenta")
	public EntCajaVenta getEntCajaVenta() {
		return entCajaVenta;
	}
	public void setEntCajaVenta(EntCajaVenta entCajaVenta) {
		this.entCajaVenta = entCajaVenta;
	}

	@Column(name="fechaPago")
	public Date getFechaPago() {
		return fechaPago;
	}
	public void setFechaPago(Date fechaPago) {
		this.fechaPago = fechaPago;
	}

	@Column(name="saldo", length=12, precision=2)
	public double getSaldo() {
		return saldo;
	}
	public void setSaldo(double saldo) {
		this.saldo = saldo;
	}

	@Column(name="estado")
	public int getEstado() {
		return estado;
	}
	public void setEstado(int estado) {
		this.estado = estado;
	}

	public EntVenta(EntTipoDocumento entTipoDocumento, String serie,
			String numDocumento, Date fecha, EntCliente entCliente,
			EntAlmacen entAlmacen, long idPedido, int factura,
			double valorVenta, double igv, double impuesto, double totalVenta,
			EntMoneda entMoneda, EntCajaVenta entCajaVenta, Date fechaPago,
			double saldo, int estado) {
		super();
		this.entTipoDocumento = entTipoDocumento;
		this.serie = serie;
		this.numDocumento = numDocumento;
		this.fecha = fecha;
		this.entCliente = entCliente;
		this.entAlmacen = entAlmacen;
		this.idPedido = idPedido;
		this.factura = factura;
		this.valorVenta = valorVenta;
		this.igv = igv;
		this.impuesto = impuesto;
		this.totalVenta = totalVenta;
		this.entMoneda = entMoneda;
		this.entCajaVenta = entCajaVenta;
		this.fechaPago = fechaPago;
		this.saldo = saldo;
		this.estado = estado;
	}

}
